#ifndef BOOK_FORMAT_BASE_H
#define BOOK_FORMAT_BASE_H

#include "i.h"

namespace Book
{

namespace Format
{

class Base : public I
{
    private:

        virtual DataPtr ReadBook (const FileInfo& _file);

    protected:

        virtual const char* GetFormatName () const = 0;

        virtual void ProcessBookFile () = 0;

        const Book::FileInfo& GetFileInfo () const
            { return m_BookData->GetFileInfo(); }

        Book::DataPtr m_BookData;
};

}

}

#endif // BOOK_FORMAT_BASE_H
